home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 6 / The Arsenal Files 6 (Arsenal Computer).ISO / sync / xsdk_241.zip / XSDK.H < prev    next >
C/C++ Source or Header  |  1995-10-16  |  8KB  |  274 lines

  1. /* XSDK.H */
  2.  
  3. #ifndef _XSDK_H
  4. #define _XSDK_H
  5.  
  6. /****************************************************************************/
  7. /*            Synchronet External Program Software Development Kit            */
  8. /*                            1993 Digital Dynamics                            */
  9. /****************************************************************************/
  10.  
  11. /****************************************************************************/
  12. /* This source code file is public domain and may be modified, compiled     */
  13. /* distributed, or used in any way, in part or whole for any purposes        */
  14. /* without the consent or notification of Digital Dynamics.                 */
  15. /*                                                                            */
  16. /* We only request that you display to the user, at some point, in your     */
  17. /* program the character "XSDK" and the version number.                     */
  18. /* example: bprintf("XSDK v%s",xsdk_ver);                                   */
  19. /****************************************************************************/
  20.  
  21. /****************************************************************************/
  22. /* The source code for two external programs developed by Digital Dynamics    */
  23. /* using XSDK (Synchronet Blackjack [SBJ] and Synchronet BBS List [SBL])    */
  24. /* are available to the public domain as examples of how to implement the    */
  25. /* functions and variables included in this software development kit.        */
  26. /****************************************************************************/
  27.  
  28.  
  29. /****************************************************/
  30. /* For use with Borland/Turbo C and C++ compilers.    */
  31. /* Tabstop set to 4.                                */
  32. /****************************************************/
  33.  
  34. /*********************************************/
  35. /* Standard Borland/Turbo C/C++ Header Files */
  36. /*********************************************/
  37. #include <io.h>
  38. #include <dos.h>
  39. #include <bios.h>
  40. #include <time.h>
  41. #include <ctype.h>
  42. #include <stdio.h>
  43. #include <share.h>
  44. #include <conio.h>
  45. #include <errno.h>
  46. #include <fcntl.h>
  47. #include <string.h>
  48. #include <stdlib.h>
  49. #include <stdarg.h>
  50. #include <malloc.h>
  51. #include <sys/stat.h>
  52. #include <sys/types.h>
  53.  
  54. #ifdef __TURBOC__
  55.     #include <dir.h>
  56. #endif
  57.  
  58. #ifdef __WATCOMC__
  59.     #include <graph.h>
  60. #endif
  61.  
  62. #define GLOBAL extern    /* turns XSDKVAR.C into a header file */
  63. #include "xsdkvars.c"
  64.  
  65. #ifdef __cplusplus
  66.     extern "C" {
  67. #endif
  68.  
  69. extern char *xsdk_ver;    /* XSDK version number */
  70. extern int mswtyp;        /* MSwait type */
  71.  
  72. /***********************/
  73. /* Function Prototypes */
  74. /***********************/
  75.  
  76. /* Initialize Data
  77.     - Reads XTRN.DAT and initializes variables */
  78. void initdata(void);
  79.  
  80. /* Get Terminal Type
  81.     - Detects RIP and WIP terminal compatibility */
  82. void get_term(void);
  83.  
  84. /* BBS Print String
  85.     - Displays a string locally and remotely (with Ctrl-A codes) */
  86. void bputs(char *str);
  87.  
  88. /* Raw Print String
  89.     - Oututs a string locally and remotely (verbatim) */
  90. void rputs(char *str);
  91.  
  92. /* BBS Print Formatted
  93.     - Displays a formatted string locally and remotely (with Ctrl-A codes)
  94.     - printf() equivalent */
  95. int  bprintf(char *fmt, ...);
  96.  
  97. /* Raw Print Formated
  98.     - Displays a formatted string locally and remotely (verbatim)
  99.     - printf() equivalent */
  100. int  rprintf(char *fmt, ...);
  101.  
  102. /* BBS String Length
  103.     - Returns length of string, excluding Ctrl-A codes */
  104. int  bstrlen(uchar *str);
  105.  
  106. /* Output character
  107.     - Displays a single character */
  108. void outchar(char ch);
  109.  
  110. /* Mnemonics
  111.     - Display a string expanding ~letter combinations to command keys
  112.     - Automatically colorizes mnemonic letters or places them in parenthesis
  113.       for non-ANSI users */
  114. void mnemonics(char *str);
  115.  
  116. /* Pause prompt
  117.     - Displays [Hit a key] and waits for the user to hit a key */
  118. void pause(void);
  119.  
  120. /* Yes/no Question
  121.     - Displays a string with (Y/n) ? appended and waits for the user to hit
  122.       'Y', 'N' or enter
  123.     - Returns 1 if the user hit 'Y' or enter
  124.     - Automatic colorization */
  125. char yesno(char *str);
  126.  
  127. /* No/yes Question
  128.     - Displays a string with (y/N) ? appended and waits for the user to hit
  129.       'Y', 'N' or enter
  130.     - Returns 1 if the user hit 'N' or enter */
  131. char noyes(char *str);
  132.  
  133. /* Inbound Keystroke
  134.     - If the local or remote user has struck a key, this function returns the
  135.       key, otherwise it returns 0
  136.     - Does not wait for a keystroke */
  137. char inkey(int mode);
  138.  
  139. /* Get a Key
  140.     - Waits for the local or remote user to hit a valid key
  141.     - See K_* constants in XSDKDEFS.H for possible values of mode */
  142. char getkey(int mode);
  143.  
  144. /* Get One of these Keys or a Number
  145.     - Waits for the user to hit a valid key or if max is non-zero, then enter
  146.       a number not greater than max
  147.     - Hot-keyed input, automatically displays the struck key (in upper case)
  148.       followed by CRLF
  149.     - If the user entered a number, the number is ORed with 0x8000 and returned
  150.       you must XOR (or not) this bit to get the correct number */
  151. int  getkeys(char *str, int max);
  152.  
  153. /* Get a Number
  154.     - Waits for the user to enter a number from 0 to max, 'Q' or ENTER
  155.     - Returns -1 if the user hit 'Q' or Ctrl-C
  156.     - Returns 0 if the user just hit ENTER */
  157. int  getnum(int max);
  158.  
  159. /* Change Attribute
  160.     - Sends ANSI escape sequences (if user supports ANSI) to change color
  161.     - Valid color bits are defined in INCLUDE\CONIO.H */
  162. void attr(char atr);
  163.  
  164. /* Clear Screen
  165.     - Clears local and remote screen (using ANSI if appropriate)
  166.     - Automatically pauses before clearing if lncntr is >1 */
  167. void cls(void);
  168.  
  169. /* Process Ctrl-A Code
  170.     - Changes color or performs special Ctrl-A function */
  171. void ctrl_a(char x);
  172.  
  173. /* Network Open
  174.     - Opens a file in DENYNONE or DENYWRITE mode, automatically retrying */
  175. int  nopen(char *str, int access);
  176.  
  177. /* Truncate Space
  178.     - Removes white space characters from the end of a string */
  179. void truncsp(uchar *str);
  180.  
  181. /* Adds Backslash
  182.     - Adds backslash to end of string if it doesn't exist */
  183. void backslash(char *str);
  184.  
  185. /* Check Time Left
  186.     - Checks the amount of time the user has left and sets the timeleft
  187.       variable
  188.     - Automatically exits if user runs out of time */
  189. void checktimeleft(void);
  190.  
  191. /* Print File
  192.     - Displays contents of file (expanding Ctrl-A characters if appropriate) */
  193. void printfile(char *str);
  194.  
  195. /* Get String
  196.     - Waits for the user to enter a string
  197.     - maxlen is the maximum length of the string
  198.     - See K_* constants in XSDKDEFS.H for possible values of mode */
  199. int  getstr(char *str, int maxlen, int mode);
  200.  
  201. /* Redraw String
  202.     - Redisplays a string, mainly called by getstr() */
  203. void redrwstr(char *strin, int i, int l, char mode);
  204.  
  205. /* Strip Invalid Ctrl-A codes */
  206. char stripattr(char *strin);
  207.  
  208. /* Returns the name of the user number passed */
  209. char *username(uint usernumber);
  210.  
  211. /* Returns the number of the user name passed */
  212. uint usernumber(char *username);
  213.  
  214. /* Returns 1 if the file exists, 0 otherwise */
  215. char fexist(char *filespec);
  216.  
  217. /* Returns the length of the file */
  218. long flength(char *filespec);
  219.  
  220. /* Convert unsigned long to an ASCII string with commas */
  221. char *ultoac(ulong l, char *string);
  222.  
  223. /* Convert an ASCII string of hex digits into an unsigned long */
  224. ulong ahtoul(char *str);
  225.  
  226. /* Display status of node */
  227. void printnodedat(uchar number, node_t node);
  228.  
  229. /* Checks to see if this node has been interrupted or any messages waiting */
  230. void nodesync(void);
  231.  
  232. /* Writes the node information to disk */
  233. void putnodedat(uchar number, node_t node);
  234.  
  235. /* Reads the node information from disk */
  236. void getnodedat(uchar number, node_t *node, char lockit);
  237.  
  238. /* Writes a short message (telegram) for specified user number */
  239. void putsmsg(int usernumber, char *strin);
  240.  
  241. /* Reads and displays short message for specified user number */
  242. void getsmsg(int usernumber);
  243.  
  244. /* Writes a node message for specified node */
  245. void putnmsg(int num, char *strin);
  246.  
  247. /* Reads and displays node message for current node */
  248. void getnmsg(void);
  249.  
  250. /* Displays users online */
  251. int whos_online(char listself);
  252.  
  253. /* Send a node-message (ctrl-P) */
  254. void nodemsg(void);
  255.  
  256. /* Put a key into the keyboard buffer */
  257. void ungetkey(char ch);
  258.  
  259. /* Check to see if the user has hung-up */
  260. void checkline(void);
  261.  
  262. /* Wait a specific number of milliseconds */
  263. void mswait(int ms);
  264.  
  265. /* Display a line (with ctrl-A codes) centered on the screen */
  266. void center(char *str);
  267.  
  268. #ifdef __cplusplus
  269.     }
  270. #endif
  271.  
  272.  
  273. #endif    /* Don't add anything after this #endif */
  274.